1. Field of the Invention
The present invention relates to internetwork communications. More particularly, the present invention relates to a method and apparatus for internetwork routing in systems that include virtual networks.
2. Art Background
Computer networks are implemented to exchange information from one location to another. The information may be data exchanged between users of the computer network, or data propagated from one user to a peripheral device such as a printer or remote data storage location. In recent years, networking systems have spread worldwide, increasing the efficiency of user's working habits by increasing the volume of information that can be exchanged almost instantaneously from one location to another. The effect has been revolutionary. Today, even personal communications and document delivery are handled via electronic mail where, in the past, other means of communicating would have been required.
The proliferation of computer networks has necessitated the development of internetworking communications devices. These devices, often referred to as routers or gateways, provide a mechanism for users (or nodes) of one network to communicate with users (or nodes) of another network. U.S. Pat. No. 5,251,205 issued to Ross W. Callon et al. teaches a method for multiple protocol routing wherein data packet formats appropriate for one network are in an inappropriate format for a second network and require a special treatment prior to propagation from the first network to the second network. The role of routers or gateways is to provide a communications path between interconnected networks regardless of the protocols implemented by the various networks.
In order to propagate information from a node on one network to a node or group of nodes on other networks, it is necessary to determine a path through the interconnected series of links and networks for the data to be propagated. Numerous routing protocols have been developed for calculating routes over interconnected networks. "Computer Networks", second edition, Andrew S. Tanenbaum, Prentice-Hall, 1988, pp. 289-309, describes numerous such routing protocols. In popular routing algorithms, such as those described in Tanenbaum, each router determines which end systems are attached to it, what links to other routers are available, the states of those links, and the identities of the routers on the other ends of those links. To initialize an internetwork environment, each router places this information in a control packet known as a Link State Packet (LSP), and transmits this LSP to all of the other routers in the internetwork. Later, when changes in the network occur, one or more routers may generate new LSPs which supersede previously generated LSPs.
As long as the most recent LSPs are propagated reliably to all of the routers, each router will have complete information about the topology of the internetwork environment and can generate a routing database describing routes through the internetwork. In order for user data packets to be delivered to their destinations, each end system on the internetwork environment must have an unambiguous address. There are several independent standards organizations which document and promulgate address allocation schemes, as well as control end user data packet formats which may be used for communicating under these schemes. Many networks and internetworks interconnected through current routing technologies have been configured according to these addressing schemes and formats.
Recent advances in networking theory have introduced the concept of "virtual networks" or virtual subnetworks. One reason for the introduction of virtual networks is for the support of mobile end stations. While a mobile end station may have a unique address, its physical location may vary from time to time. It would be inefficient for every other user on an interconnected series of networks to have to update their address tables every time every mobile end station changed physical locations. Thus, it is convenient for mobile stations to maintain a single (virtual) address for which all other end stations or nodes can use to reach it. Additionally, virtual networks are useful for giving a common group of end stations an address which implies a common subnetwork address, even though those end stations may actually be distributed over numerous physical networks. The distributed subnetworks combine to comprise the virtual network. This ability is gaining in commercial importance. Thus, a number of host systems comprising a single subnetwork with an address identifier which identifies that subnetwork may in fact be interconnected through different routers.
A likely typical situation for implementing virtual networks concerns the routing of the internetwork protocol (IP) type networking packets over an asynchronous transfer mode (ATM) network. The ATM protocols define the need for coordination of route computation between multiple systems serving the same network using emerging LAN Emulation protocols.
Under existing routing protocols such as the Internetworking Protocol (IP), there is no provision for Link State Packets to be formulated by a router which identifies whether or not a router is connected to all hosts of a given network, or is merely capable of answering queries regarding the hosts of a distributed virtual network. That is, when a virtual network is distributed over several routers, each router can only identify in its LSP that the subnetwork is (eventually) reachable from it. There is no way to identify that the router is not directly in communication with all nodes of the network. Currently, this is no different from information provided by a router which is directly connected to all hosts on a real physical network. Packets forwarded to a router connected to a virtual network, but not to a router physically coupled to the destination host will have to be forwarded to the correct router within the virtual network which is connected to the host. This is inefficient. As an alternative, prior to routing data from one host on one network connected to a router to another network connected to a different router, the sending or originating router may send a query to some or all of the routers which claim a connection to the virtual destination network asking for an actual physical router address to send to which is connected to the desired host. This mechanism, however, is inefficient for those routers which are directly connected to all hosts of a physical destination network. It would be desirable, and is therefore an object of the present invention, to provide a routing mechanism which efficiently handles the case of an interconnected series of networks which may include both distributed virtual networks and discrete physical networks.